// 全局请求封装
import WxmpRsa from 'wxmp-rsa'


const base_url = 'http://127.0.0.1:5000/api'
// 请求超出时间
const timeout = 5000
const key = `
 -----BEGIN PUBLIC KEY-----
 MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn4Vv97HFj7PR3VX5kUs2
 8sVQVT0elnxrns3HtW6y2fpnad+XMJb3dqLsfBPM8LR9C9cAZ21DvijD5fIbeIOH
 /ADfN7IDghd7+4Tx4h8iY8M9olaFSVrHLHaBOUjS89lIEgRdMIItqTxDm3rOAhks
 75s+xFOKt1jENC6DPT9XiNe5uTJe/xkZjQm59jb/r+yi9HyYIN4nwgiWbuFhLG3i
 BWmuMgNoxMDJDMufDhrEwiSLDsBEtXcv4igXLkvkprKAQ0j3UM35hgxZ+2ltQ34k
 XEOQdFlt72DG8Dyut27rvVXhZqHGeJyEO70juCxoH9YIRmW1PmspgBoc1UpSSJtb
 dwIDAQAB
 -----END PUBLIC KEY-----
 `
 // let data = {
	//  'test': 'test'
 // }
// let encryptor =  new WxmpRsa();
// // 设置公钥  
// encryptor.setPublicKey(key);  
// data = {
// 	'data': encryptor.encryptLong(JSON.stringify(data))
// }
// console.log(data);

function getToken(){
	let token = ''
	uni.getStorage({
		key: 'token',
		success: (res) => {
			if (res.data == ''){
				token = 404
				return ;
			}
			token = res.data
			
		},
		fail: (error) => {
			console.log(error);
			token = 404
		}
	})
	console.log('token: ', token);
}
function request(params) {
		let url = params.url;
		let method = params.method || "get";
		let data = params.data || {};
		let token = getToken()
		// if (params=='/api/test'){}
		// else if (params.url == '/api/login') {
		// 	if (token == 404) {
		// 		uni.navigateTo({
		// 			url: '/pages/login/login'
		// 		})
		// 	}
		// 	return;
		// }
		let header = {
			'Blade-Auth': uni.getStorageSync('token') || '',
			'Content-Type': 'application/json;charset=UTF-8',
			'Authorization': 'Basic c2FiZXI6c2FiZXJfc2VjcmV0',
			'Tenant-Id': uni.getStorageSync('tenantId') || 'xxx', // avue配置相关
			...params.header
		}
			if (method == "post") {
				header = {
					'Content-Type': 'application/json'
				};
			}
			if (data!=={}&&method == 'post'){
				let encryptor = new WxmpRsa();
				// 设置公钥  
				// 获取当前时间戳（秒）
				const timestampInSeconds = Math.floor(Date.now() / 1000);
				data['timestamp'] = timestampInSeconds
				encryptor.setPublicKey(key);  
				data = encryptor.encryptLong(JSON.stringify(data))
			}
			return new Promise((resolve, reject) => {
					uni.request({
						url: base_url + url,
						method: method,
						header: header,
						data: data,
			            timeout ,
						success(response) {
							const res = response
							console.log(res);
							resolve(res.data);
							let code = res.data.code
							console.log(code)
							switch (code){
								case 200:
									break
								case 404:
									uni.navigateTo({
										url: '/pages/login/login'
									})
									break
								case 301:
									break
							}
							
						},
						fail(err) {
							reject(err);
			 
						},
						complete() {
							// 不管成功还是失败都会执行
							uni.hideLoading();
							uni.hideToast();
						}
					});
				}).catch(() => {});
}
// const request =  (params) => {
// 	let url = params.url;
// 	let method = params.method || "get";
// 	let data = params.data || {};
// 	let header = {
// 		'Blade-Auth': uni.getStorageSync('token') || '',
// 		'Content-Type': 'application/json;charset=UTF-8',
// 		'Authorization': 'Basic c2FiZXI6c2FiZXJfc2VjcmV0',
// 		'Tenant-Id': uni.getStorageSync('tenantId') || 'xxx', // avue配置相关
// 		...params.header
// 	}
// 	if (method == "post") {
// 		header = {
// 			'Content-Type': 'application/json'
// 		};
// 	}

// 	return new Promise((resolve, reject) => {
// 		if (data!=={}&&method == 'post'){
// 			let encryptor = new JSEncrypt();
// 			// 设置公钥  
// 			encryptor.setPublicKey(key);  
// 			data = {
// 				'data': encryptor.encrypt(JSON.stringify(data))
// 			}
// 		}
// 		uni.request({
// 			url: base_url + url,
// 			method: method,
// 			header: header,
// 			data: data,
//             timeout ，
// 			success(response) {
// 				const res = response
// 				resolve(res.data);
// 				// 根据返回的状态码做出对应的操作
// 				//获取成功
// 				// console.log(res.statusCode);
// 				// if (res.statusCode == 200) {
// 				// 	resolve(res.data);
// 				// } else {
// 				// 	uni.clearStorageSync()
// 				// 	switch (res.statusCode) {
// 				// 		case 401:
// 				// 			uni.showModal({
// 				// 				title: "提示",
// 				// 				content: "请登录",
// 				// 				showCancel: false,
// 				// 				success() {
// 				// 					setTimeout(() => {
// 				// 						uni.navigateTo({
// 				// 							url: "/pages/login/index",
// 				// 						})
// 				// 					}, 1000);
// 				// 				},
// 				// 			});
// 				// 			break;
// 				// 		case 404:
// 				// 			uni.showToast({
// 				// 				title: '请求地址不存在...',
// 				// 				duration: 2000,
// 				// 			})
// 				// 			break;
// 				// 		default:
// 				// 			uni.showToast({
// 				// 				title: '请重试...',
// 				// 				duration: 2000,
// 				// 			})
// 				// 			break;
// 				// 	}
// 				// }
// 			},
// 			fail(err) {
// 				// console.log(err)
// 				// if (err.errMsg.indexOf('request:fail') !== -1) {
// 				// 	wx.showToast({
// 				// 		title: '网络异常',
// 				// 		icon: "error",
// 				// 		duration: 2000
// 				// 	})
// 				// } else {
// 				// 	wx.showToast({
// 				// 		title: '未知异常',
// 				// 		duration: 2000
// 				// 	})
// 				// }
// 				reject(err);
 
// 			},
// 			complete() {
// 				// 不管成功还是失败都会执行
// 				uni.hideLoading();
// 				uni.hideToast();
// 			}
// 		});
// 	}).catch(() => {});
// };

export {
	request
}